home *** CD-ROM | disk | FTP | other *** search
/ Linux Cubed Series 8: LINUX Games / Linux Cubed Series 8 - LINUX Games.iso / games / x11 / strategy / xpat2-1.000 / xpat2-1 / xpat2-1.04 / src / xpatgame.h < prev    next >
C/C++ Source or Header  |  1994-06-29  |  3KB  |  100 lines

  1. /*****************************************************************************/
  2. /*                                         */
  3. /*                                         */
  4. /*    X patience version 2 -- module xpatgame.h                 */
  5. /*                                         */
  6. /*    Copyright (C) 1993, 1994 by Heiko Eissfeldt and Michael Bischoff     */
  7. /*    see COPYRIGHT.xpat2 for Copyright details                 */
  8. /*                                         */
  9. /*    This file is included by all interface-independent sources         */
  10. /*                                         */
  11. /*                                         */
  12. /*****************************************************************************/
  13. #ifndef _POSIX_SOURCE
  14. #define _POSIX_SOURCE
  15. #endif
  16. #include "xpat.h"
  17.  
  18. /* special values & defs for the "Move" type */
  19. #define MOVE(srcind, dstpile)    ((Move)(srcind) | (Move)((dstpile) << 9))
  20. #define MOVE_TURNED    (Move)0x8000
  21. #define DSTPILE(m)    (int)((m >> 9) & 63)
  22. #define SRCIND(m)    (int)(m & 511)
  23.  
  24. /* special moves have bit 15 set and bit 31 also */
  25. #define SPECIAL_MOVE    0x80008000UL
  26. #define SPECIAL_MASK    0xffff8000UL
  27. #define SPECIAL_ARGS    0x00007fffUL
  28.  
  29. #define COMPOUND_BEGIN    0xfff08000UL
  30. #define COMPOUND_END    0xfff18000UL
  31. #define ADD_CHEAT    0xfff28000UL    /* | value */
  32. #define ROTATE_UP    0xfff38000UL    /* | srcind */
  33. #define ROTATE_DOWN    0xfff48000UL    /* | srcind */
  34. #define SHUFFLING    0xfff58000UL    /*  */
  35. /* add others here */
  36. #define NEW_CARDS_MOVE    0xffff8000UL
  37. #define NO_MOVE        0xffffffffUL
  38.  
  39.  
  40. #define DIFFERENT_COLOR(i, j)    (((i) ^ (j)) & 2)
  41.  
  42. Move RotateUp(Cardindex);
  43. Move RotateDown(Cardindex);
  44. Move SlotShuffle(int fwd);
  45. void check_win_game(void);
  46. void write_log_file(void);
  47. Cardindex maxsequence(Pileindex ind, Cardindex cardind);
  48.  
  49. int std_good_hint(int srcindex, int dstpile);
  50.  
  51. void jumpto_movenr(int movenr);    /* without graphics! */
  52.  
  53.  
  54. Cardindex complete_suit(Pileindex pile, Cardindex i);
  55. void check_win_game(void);
  56. int in_relaxed_sequence(int srccard, int dstcard);
  57. int in_strong_sequence(int srccard, int dstcard);
  58. Cardindex slotsequence(Pileindex ind, Cardindex start, Cardindex stop);
  59. Cardindex relaxedslotsequence(Pileindex ind, Cardindex start, Cardindex stop);
  60. int move_valid(int, int );
  61. int default_movevalid(int, int );
  62. int move_to_stack(Pileindex);
  63. int check_new_cards(void);
  64.  
  65. Cardindex stackable(Pileindex);
  66.  
  67. /* rules.c */
  68. void memo_alloc(int);
  69. void store_move(Move);
  70. int undo_move(void);        /* returns 1, if undo possible */
  71. int redo_move(void);        /* returns 1, is redo possible */
  72. Move do_move(Cardindex, Pileindex);
  73. int all_to_stack(void);
  74. Move give_new_cards(void);
  75.  
  76. /* hints.c */
  77. void do_last_hint(void);
  78. int generic_automove(Cardindex);
  79.  
  80. /* events.c */
  81. void event_loop(void);
  82. void resize_desktop(int w, int h, int request);
  83.  
  84.  
  85. /* cards.c */
  86. /* void redraw_buttons(int, int, int, int, Window, int, struct singlebutton *); */
  87. void redraw_one_pile(int, int, int, int, int);
  88.  
  89.  
  90. /* buttons.c */
  91.  
  92. /* commands.c */
  93.  
  94. /* loadsave.c */
  95.  
  96. /* tools.c */
  97. #define PRANDMAX 1000000000L
  98. void sprand(long);
  99. long prand(void);
  100.